package Day11.Demo03;

/**
 * @author hyhWTX
 * @version 1.0
 * @date 2022年05月12日 20:15
 */

/**
 *如果有一个事物的内部包含这另一个类，那么这个就是一个类内部包含另一个类
 * 例如：身体和心脏的关系，或者汽车与发动机的关系
 *
 * 分类：
 * 1.成员内部类
 * 2.局部内部类（包含匿名内部类）
 *
 * 成员内部类的定义格式：
 * 修饰符 class 类名称 {
 *     修饰符 class 类名称{
 *         //...
 *     }
 *     //...
 * }
 *
 * 注意事项：
 * 内部类使用外部类，随意访问
 * 外部使用内部类，需要借助内部类对象
 *
 *
 * ===============================
 * 如何使用成员内部类？两种方法
 * 1.间接方式：在外部类的方法当中，使用内部类，然后main只调用外部类的方法
 * 2.直接方式：公式：
 *      外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();
 */

public class Demo01InnerClass {
    public static void main(String[] args) {
        Body body = new Body();
        //通过外部类的对象，调用外部类的方法，里面间接在使用内部类Heart
        body.methodBody();
        System.out.println("==================");

        Body.Heart heart = new Body().new Heart();
        heart.beat();
    }
}
